package khs.java_processbuilder.main.java;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/**
 * Hello world!
 *
 */
public class App 
{
    public static void main( String[] args ) throws IOException
    {
        String s;
        
        ProcessBuilder processBuilder = new ProcessBuilder("ffmpeg", "-i", "rtp://127.0.0.1:10000", "-y", "a.aac");
        processBuilder.redirectErrorStream(true);
        Process oProcess = processBuilder.start();
        
     // 외부 프로그램 출력 읽기
        final BufferedReader stdOut   = new BufferedReader(new InputStreamReader(oProcess.getInputStream()));
        final BufferedReader stdError = new BufferedReader(new InputStreamReader(oProcess.getErrorStream()));
        
        (new Thread(){
            public void run(){
                String s;
                
               // "표준 출력"과 "표준 에러 출력"을 출력
                try {
                    while ((s =   stdOut.readLine()) != null) System.exit(0);
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }).start();
        
        System.out.println("===========================");
        
        // 외부 프로그램 반환값 출력 (이 부분은 필수가 아님)
        System.out.println("Exit Code: " + oProcess.exitValue());
        System.exit(oProcess.exitValue()); // 외부 프로그램의 반환값을, 이 자바 프로그램 자체의 반환값으로 삼기
    }
}
